package cn.buk.tms.entity.order;

import jakarta.persistence.*;

/**
 * 订单审批信息：
 * 所有的订单审批信息都放到此处
 */
@Embeddable
public class OrderApprovalInfo {

  /**
   * 如果该订单需要审批，则系统在此设置指定审批人
   */
  @Column(name = "specified_approver", length = 32)
  private String specifiedApprover;

  /**
   * 审批状态：
   * null - 未处理
   * 1 - 同意
   * 0 - 不同意
   */
  @Column(name = "approval_status")
  private Integer approvalStatus;

  /**
   * 审批如果拒绝，拒绝的原因代码
   */
  @Column(name = "approval_deny_code", length = 50)
  private String approvalDenyCode;
  
  /**
   * 审批如果拒绝，拒绝的原因描述
   */
  @Column(name = "approval_deny_reason", length = 50)
  private String approvalDenyReason;

  /**
   * 是否违反差旅政策
   * null - 未处理
   * 0 - 未违反
   * 1 - 违反
   */
  @Column(name = "violation_status")
  private Integer violationStatus;

  /**
   * 违反差旅政策的原因代码
   */
  @Column(name = "violation_code", length = 10)
  private String violationCode;

  /**
   * 违反差旅政策的原因描述
   */
  @Column(name = "violation_reason", length = 50)
  private String violationReason;

  public String getSpecifiedApprover() {
    return specifiedApprover;
  }

  public void setSpecifiedApprover(String specifiedApprover) {
    this.specifiedApprover = specifiedApprover;
  }

  public Integer getApprovalStatus() {
    return approvalStatus;
  }

  public void setApprovalStatus(Integer approvalStatus) {
    this.approvalStatus = approvalStatus;
  }

  public String getApprovalDenyCode() {
    return approvalDenyCode;
  }

  public void setApprovalDenyCode(String approvalDenyCode) {
    this.approvalDenyCode = approvalDenyCode;
  }

  public String getApprovalDenyReason() {
    return approvalDenyReason;
  }

  public void setApprovalDenyReason(String approvalDenyReason) {
    this.approvalDenyReason = approvalDenyReason;
  }

  public Integer getViolationStatus() {
    return violationStatus;
  }

  public void setViolationStatus(Integer violationStatus) {
    this.violationStatus = violationStatus;
  }

  public String getViolationCode() {
    return violationCode;
  }

  public void setViolationCode(String violationCode) {
    this.violationCode = violationCode;
  }

  public String getViolationReason() {
    return violationReason;
  }

  public void setViolationReason(String violationReason) {
    this.violationReason = violationReason;
  }
}
